//
// Created by yu on 2023/9/23.
//

#pragma once

#include "sensor_msgs/Imu.h"
#include "sensor_msgs/MagneticField.h"

struct imuData
{
//  四元数
  double quaX;
  double quaY;
  double quaZ;
  double quaW;

//  角速度
  double angular_velocity_x;
  double angular_velocity_y;
  double angular_velocity_z;

//  直线加速度
  double accelerate_x;
  double accelerate_y;
  double accelerate_z;

//  磁场
  double mag_x;
  double mag_y;
  double mag_z;
}inline ImuData;

struct imuEuler{
  double roll;
  double pitch;
  double yaw;
}inline ImuEuler;

void imuCallBack(const sensor_msgs::Imu &_datas);
void magCallBack(const sensor_msgs::MagneticField &_datas);
void quaternionToEuler(imuData data);